There is, and will continue to be, advances and changes in how organizations conduct business. Whether these advances and changes occur through growing competition and globalization, mergers and acquisition, or a revamping of business models, the key for success will often depend on how quickly an enterprise's information technology (IT) organization can adapt to evolving business needs. Therefore, a major challenge to these enterprises is how they handle change.
For organizations to maintain business agility, they must ensure that enterprise applications are not only high-performance business engines driving efficiencies, but also that they become flexible building blocks of future business systems. A recent and promising solution has risen in the form of services. A service, such as a Web service or program, represents a self-contained and self-describing piece of application functionality that can be found and accessed by other applications. A service can be considered self-contained because the application using the service does not have to depend on anything other than the service itself. A service can be considered self-describing because all the information on how to use the service can be obtained from the service itself. Further, descriptions for a service can be centrally stored and accessible through standard mechanisms.
Instead of requiring programmers to establish and maintain links between applications, services are often loosely coupled, making connections simpler and more flexible and allowing application architects to more easily find and understand services offered by other cooperative applications. However, a problem that exists with conventional services is that they are often designed to expose functionality of individual applications and, thus, are too limited to be efficient building blocks for enterprise-wide business processes. A solution to this shortfall has been the migration to a Service Oriented Architecture (SOA). SOA is an open architecture middleware, which builds on the benefits of services. An example of an SOA can be found in the Enterprise Service Framework (ESF), which is commercially available from SAP AG (Walldorf, Germany). The term “SOA” may also be used to refer to “distributed objects” architecture, such as CORBA (Common Object Request Broker Architecture) and DCOM (Distributed Component Object Model).
SOA enables the abstraction of business objects, modeled as services (also referred to as enterprise services), from actual applications. Aggregating services into business-level enterprise services may provide more meaningful building blocks for the task of automating enterprise-scale business scenarios. Enterprise services may also allow IT organizations to efficiently develop composite applications, which compose functionality and information from existing systems to support new business processes or scenarios.
SOA also enables the use of an enterprise services repository. An enterprise services repository stores relevant pre-existing enterprise services and makes them available to selected partners and customers. By using the enterprise services repository, these selected partners and customers can use the pre-existing enterprise services to aid in the implementation of new services and corresponding business objects. An “object” refers to a software bundle of variables (e.g., data) and related methods. For example, in object-oriented programming, an object is a concrete realization (instance) of a class that consists of data and the operations associated with that data. The term “business object” (BO) represents a physical or logical object of significance to a business, such as a purchase order, GLAccount, production order, project, product cost estimate, etc. BO is one instance of an business object type, wherein the business object type refers to a generic definition of business objects that describes the general characteristics and common attributes.
Frequently, there are many situations where a business should record changes to BOs implemented by partners and customers. For example, an online transaction processing system should record alteration, creation, or deletion of a BO and its transactional data in order to track changes for internal or regulatory reasons, such as for financial audits. Currently, there are different specialized auditing solutions for different BOs. However, in current systems, existing SOAs fail to provide robust and flexible auditing services. Instead, current solutions are specific and cannot be used by any kind of BO in a SOA. In addition, current solutions are costly to design, implement, and maintain. Therefore, there is a need for improved enterprise services to provide a generic audit trail service that can be used by all kinds of BOs.